Edgetop

Jiacheng Huang, Kailing Shen, Xuning Shao

Demonstration Video

Introduction

In our daily lives, our devices often have idle computing power, such as when we sleep, eat, or commute. Even when we are actively using them, their efficiencies are usually not fully utilized, leading to a waste of computing power. To address this issue, we propose the Edgetop project, which aims to reduce the amount of idle power by establishing a central local area network node that distributes computing power to our devices. This is achieved by separating input and output devices from the main computing components such as the CPU, GPU, memory, and storage. While wireless keyboards, mice, and earphones have been successfully implemented using technologies such as Bluetooth and Wi-Fi, the implementation of a wireless display has been limited by the limitations of bandwidth and latency. However, with the recent advancements in Wi-Fi technology, it is now possible to address these limitations and implement a wireless display system.


The Edgetop project leverages this technology to allow users to connect to a central node and use it as a computing unit like a laptop or smartphone. A cloud server is used to store and check gateway information and user login information, while a laptop serves as the edge node providing the computing power. Raspberry Pi devices are used as edge devices, allowing users to connect to the edge node and use it to access the computing power. By separating the input and output devices from the main computing components, the Edgetop project aims to reduce idle computing power and improve the efficiency of our devices.

Objective

  • ● Raspberry Pi Wi-Fi Confugeration
  • ● Virtual Machine on AWS as Cloud Server
  • ● TCP connections between Edge Node and Edge Devices
  • ● Connections between Cloud Server and Edges
  • ● Edge Node Development
  • ● Confugeration on Raspberry Pi as Edge Device

The idea of Edgetop is to create wireless display separated from computing unit. The cloud server will check the gateway of edge device to find an edge node as well as the login information. Once there is an edge node and user enter the correct username and password, the edge device can connect to the edge node and start using the edge node as the computing unit like a laptop or a smart phone. A virtual machine on AWS is rent as the cloud server for storing and checking gateway information and user login information. A laptop from team member is used as edge node, i.e., the computing unit. And two Raspberry Pi 4 and one Raspberry Pi 3 are used as the edge devices.

Design

System is separate into two parts: cloud and edge. The cloud part hosts a web service that receives and records information from edges. The edge part can be further divided into two parts: node and device. This design assumes there is only one specific node machine associated with a given router. Therefore, when a node starts, it reports its default gateway and IP address to the cloud server, and when a device wants to connect, it reports its default gateway and receives the IP address of the node from the cloud server. In this way, each device sharing the same default gateway is able to know the IP address of the node, and thus creating TCP connections with the node to do further requests. For example, the device can then send username and password to the node, and node will pass this information to the cloud for authentication. A user also sets a shorter PIN number, so that they can reconnect to the same node as long as the node is still serving him. After verification, VNC connection will be established, and user is able to do remote control on his device.

Drawings

For the Edgetop system, a cloud server can connect to multiple edges. Each edge contains exactly one edge node and several edge devices.


The Block Diagram od Edgetop

The Block Diagram od Edgetop

Credits to jh2455

Testing and Results

1. Connections between edge node and edge device

We started from testing for the Wi-Fi connection between Raspberry Pi and the laptop. Our purpose is to establish the peer-to-peer connection between devices through Wi-Fi. First, we tried the video streaming via FFmpeg to send video stream between the laptops and test the transmission and reception of video data. The connection was successfully established. But after we made the data transmission between Raspberry Pi and a laptop, we found that the latency was too high to even normally scroll and read through a page of text file. Thus, in order to deal with the high latency, we switched to establish the peer-to-peer connection using WPA_SUPPLICANT. The connection was successfully established in command line terminal, but the latency is still not as expected. Finally, we used the VNC connection, and everything worked fine with a latency that was low enough for further works in this project.


2. Interactions between cloud server and edge

After having a virtual machine on AWS as the cloud server, we tested the data transmission between cloud server and edge. First, we tested the connection between edge node and cloud server. The laptop can upload its gateway and IP address successfully onto the cloud. Secondly, we tested the connection between edge devices and cloud server. The edge devices can successfully upload its gateway and receive whether there is an edge node under the same gateway from cloud server. Last, we tested the user login function that edge devices send username and password to the cloud server and receive whether login successfully. By sending out correct login information, the edge device successfully received the IP address of the node and used the IP address to send the P2P connection request. And the edge node can successfully receive the connection request, as well as the successful login signal from server. All interaction between cloud server and edge worked as expected and helped us to generate the Python scripts of these interactions for this project.


3. Results

The Edgetop project has been tested to ensure that the connections between the edge node and edge devices are functioning properly. The team tested the Wi-Fi connection between the Raspberry Pi and laptop, and successfully established a peer-to-peer connection using TCP to deal with the high latency of video streaming. The team also tested the cloud server and verified that it was able to store and check gateway information and user login information.


Edgetop system. The system was able to provide acceptable performance for tasks such as browsing the web, running basic applications, and transferring small files. However, the system showed some limitations when performing more resource-intensive tasks such as video streaming or gaming, due to the high latency and limited bandwidth of the Wi-Fi connection.


Overall, the Edgetop project has been demonstrated to be a feasible solution for reducing idle computing power and improving the efficiency of our devices. However, the system still has some limitations and challenges that need to be addressed in order to fully realize its potential. Further optimization and testing may be needed to improve the performance of the system and support a larger number of users and edge devices.

Conclusion

In conclusion, the Edgetop project is a unique solution for reducing idle computing power and improving the efficiency of our devices. By establishing a central node for distributing computing power, the Edgetop project allows users to access the computing power of the edge node remotely using their edge devices. This can help reduce the amount of idle power and improve the efficiency of our devices, while also providing a more secure computing environment. The Edgetop project has been tested and demonstrated to be a feasible solution, and has the potential to provide significant benefits in terms of energy savings, improved performance, and enhanced security.

Parts List

  • ● laptop - provided by team member
  • ● Raspberry Pi 4 - Provided in lab
  • ● Raspberry Pi 3 - Provided in lab
  • ● 16 GByte SD card - Provided in lab
  • ● 2.8 inch TFT screen - Provided in lab
  • ● USB Keyboard and Mouse - Provided in lab
  • ● Moniter and HDMI cables - Provided in lab
  • Total: $0

Code Appendix

W3C+Hates+Me Valid+CSS%21 Handcrafted with sweat and blood Runs on Any Browser Any OS